package com.javaxiaobear.module.system.domain;

import com.javaxiaobear.base.framework.aspectj.lang.annotation.Excel;
import com.javaxiaobear.base.framework.aspectj.lang.annotation.Excel.ColumnType;
import com.javaxiaobear.base.framework.web.domain.BaseEntity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 岗位表 sys_post
 *
 * @author javaxiaobear
 */
@EqualsAndHashCode(callSuper = true)
@Table(value = "sys_post")
@Data
public class SysPost extends BaseEntity {

  /** 岗位序号 */
  @Id
  @Excel(name = "岗位序号", cellType = ColumnType.NUMERIC)
  private Long postId;

  /** 岗位编码 */
  @Column(value = "post_code")
  @Excel(name = "岗位编码")
  private String postCode;

  /** 岗位名称 */
  @Column(value = "post_name")
  @Excel(name = "岗位名称")
  private String postName;

  /** 岗位排序 */
  @Column(value = "post_sort")
  @Excel(name = "岗位排序")
  private Integer postSort;

  /** 状态（0正常 1停用） */
  @Column(value = "status")
  @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
  private String status;

  /** 用户是否存在此岗位标识 默认不存在 */
  private boolean flag = false;

  @NotBlank(message = "岗位编码不能为空")
  @Size(max = 64, message = "岗位编码长度不能超过64个字符")
  public String getPostCode() {
    return postCode;
  }

  @NotBlank(message = "岗位名称不能为空")
  @Size(max = 50, message = "岗位名称长度不能超过50个字符")
  public String getPostName() {
    return postName;
  }

  @NotNull(message = "显示顺序不能为空")
  public Integer getPostSort() {
    return postSort;
  }
}
